/*****************************************
*测试：接收功能
*作者：mario
*版本：V0.1
******************************************/
#include "serial.h"

int main(int argc,int *argv[])
//int main()
{
  int fd;
  size_t len=0;
  un_char Buff_Send_data[BUFF_MAXSIZE] = {0x51, 0x06, 0x05, 0x01, 0x74, 0x23, 0x45, 0x67, 0x78, 0x89};//只是测试用，就在栈分配的空间，正式编写一般需要自己分配动态内存
  un_char Buff_Rec_data[BUFF_MAXSIZE];
  static double a[4],w[4],h[4],Angle[4],Port[4];
  static double TPA[3];
  struct termios oldtio,newtio;
  //打开串口
  char *dev="/dev/ttyUSB0";
  fd=OpenDev(dev);//

  tcgetattr(fd,&oldtio);
  if(fd>0)
  {
     Set_speed(fd,115200,&newtio);//设置115200波特率
  }
  else
  {
     printf("Can't Open Serial Port!\n");
     exit(0);    
  }
  if(Set_attr(fd,8,1,'N',0,66,0)==FALSE)//调用设置8位数据位，1位停止位及无校验位,无数据流控
  {
     printf("Set Error!\n");
     exit(1);
  }
/****************可以使用*************************/
  Write_Data(fd,Buff_Send_data,10);
/************************************************/
  while(1)
  {
     len=Read_Data(fd,Buff_Rec_data,100,1);
     if(66==len)
     {
/**	
	int j=0;
	while(Buff_Rec_data[j]!='\0')
   	{
	   printf("the readable data is 0x%x\n",Buff_Rec_data[j]);
	   j++;
   	}
**/
	int j=0;
	for(;j<6;j++)
	{
	   int k=0;
	   for(;k<11;k++)
	   {
		printf("0x%02x ",Buff_Rec_data[j*11+k]);
	   }
	   printf("\n");
	}
	Data_Processing(Buff_Rec_data,len,a,w,h,Angle,Port,TPA);
	for(j=0;j<3;j++)
	{
	   printf("%lf ",a[j]);
	}
	printf("\n");	
	for(j=0;j<3;j++)
	{
	   printf("%lf ",w[j]);
	}
	printf("\n");
	for(j=0;j<3;j++)
	{
	   printf("%lf ",h[j]);
	}
	printf("\n");
	
	for(j=0;j<3;j++)
	{
	   printf("%lf ",Angle[j]);
	}
	printf("\n");
	for(j=0;j<3;j++)
	{
	   printf("%lf ",TPA[j]);
	}
	printf("\n");	
     }
     usleep(10000);
//     Write_Data(fd,Buff_Send_data,10);
//     sleep(1);
  }
  return 1;
}
